/**
*   Level.h
*
*   Contains level information
*   - Startspostion (0,0) is the bottom left corner of the playfield
*       So upper right is max-width - 1 and max-height - 1, we can change this to "human" input and start at 1,1
*/
#ifndef LEVEL_H
#define LEVEL_H

//#include "stdio.h"
//#include <iostream>
#include <string>
#include <vector>

#include "TypeDefs.h"

using namespace std;

class Level{
    //Defines
    #define LVL_WIDTH 10                                                    //Width of the playfield
    #define LVL_HEIGHT 20                                                   //Height of the playfield

    private:
        //Vars
        vector<unsigned int> _playfield;                                    //Contains the playfield
        //Methods
        void init();                                                        //Initialize the default playfield
    public:
        //Vars
        //enum elements{EMPTY, BLOCK, HARD};                                  //The types a field can contains
        //Methods
        Level();                                                            //Default constructor
        unsigned int getPosition(unsigned int x, unsigned int y);           //Returns what is located at a certain position
        string getPlayfieldInString();                                      //Returns the level in a string representation (DEBUG Purpose)
        void setPosition(unsigned int x, unsigned int y, elements element); //Change a certain position
    };
#endif
